package com.cq.hd.order.api.excel;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.cq.hd.common.enums.biz.OrderStateEnum;
import com.cq.hd.common.enums.biz.SubOrderStateEnum;
import com.cq.hd.common.utils.LocalDateUtil;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

public class EnrollOrderSheet implements Serializable {

    @ExcelProperty(value = "订单号", index = 0)
    @ColumnWidth(20)
    @ApiModelProperty(value = "订单号")
    private String orderNo;

    @ExcelProperty(value = "活动标题", index = 1)
    @ColumnWidth(20)
    @ApiModelProperty(value = "活动标题")
    private String activeTitle;

    @ExcelProperty(value = "下单数量", index = 2)
    @ColumnWidth(20)
    @ApiModelProperty(value = "下单数量")
    private Integer orderNum;

    @ExcelProperty(value = "子订单号", index = 3)
    @ColumnWidth(20)
    @ApiModelProperty(value = "子订单号")
    private String subOrderNo;

    @ExcelProperty(value = "商品价格", index = 4)
    @ColumnWidth(20)
    @ApiModelProperty(value = "商品价格")
    private String goodsPrice;

    @ExcelProperty(value = "分账本金", index = 5)
    @ColumnWidth(20)
    @ApiModelProperty(value = "商户订单本金(按比例分配的用户支付的订单款)")
    private String merchantAmt;

    @ExcelProperty(value = "分账补贴", index = 6)
    @ColumnWidth(20)
    @ApiModelProperty(value = "总补贴金额")
    private String totalSubsidyAmt;

    @ExcelProperty(value = "返现金额", index = 7)
    @ColumnWidth(20)
    @ApiModelProperty(value = "返现金额")
    private String returnAmt;

    @ExcelProperty(value = "子订单状态", index = 8)
    @ColumnWidth(20)
    @ApiModelProperty(value = "订单状态(0-待支付，1-待核销，2-已核销，3-已取消，4-已过期)")
    private String subOrderState;

    @ExcelProperty(value = "所属商户", index = 9)
    @ColumnWidth(20)
    @ApiModelProperty(value = "所属商户")
    private String merchantName;

    @ExcelProperty(value = "核销时间", index = 10)
    @ColumnWidth(20)
    @ApiModelProperty(value = "订单核销时间")
    private String verifyTime;

    @ExcelProperty(value = "下单人昵称", index = 11)
    @ColumnWidth(20)
    @ApiModelProperty(value = "下单人昵称")
    private String orderNickName;

    @ExcelProperty(value = "下单人手机号", index = 12)
    @ColumnWidth(20)
    @ApiModelProperty(value = "下单人手机号")
    private String orderMobile;

    @ExcelProperty(value = "订单金额", index = 13)
    @ColumnWidth(20)
    @ApiModelProperty(value = "订单金额")
    private String orderPrice;

    @ExcelProperty(value = "优惠金额", index = 14)
    @ColumnWidth(20)
    @ApiModelProperty(value = "优惠金额")
    private String discountAmt;

    @ExcelProperty(value = "红包金额", index = 15)
    @ColumnWidth(20)
    @ApiModelProperty(value = "红包金额")
    private String redPacketAmt;

    @ExcelProperty(value = "实付金额", index = 16)
    @ColumnWidth(20)
    @ApiModelProperty(value = "实付金额")
    private String payPrice;

    @ExcelProperty(value = "经纪人昵称", index = 17)
    @ColumnWidth(20)
    @ApiModelProperty(value = "经纪人昵称")
    private String agentNickName;

    @ExcelProperty(value = "经纪人手机号", index = 18)
    @ColumnWidth(20)
    @ApiModelProperty(value = "经纪人手机号")
    private String agentMobile;

    @ExcelProperty(value = "推广权益", index = 19)
    @ColumnWidth(20)
    @ApiModelProperty(value = "推广权益")
    private String promotionEquity;

    @ExcelProperty(value = "订单总补贴", index = 20)
    @ColumnWidth(20)
    @ApiModelProperty(value = "订单总补贴")
    private String totalOrderSubsidy;

    @ExcelProperty(value = "订单总返现", index = 21)
    @ColumnWidth(20)
    @ApiModelProperty(value = "订单总返现")
    private String totalReturnAmt;

    @ExcelProperty(value = "订单状态", index = 22)
    @ColumnWidth(20)
    @ApiModelProperty(value = "订单状态(1-待支付,2-待核销,3-核销中,4-已取消,5-已完成,6-已关闭,7-已核销)")
    private String orderState;

    @ExcelProperty(value = "下单时间", index = 23)
    @ColumnWidth(20)
    @ApiModelProperty(value = "下单时间")
    private String orderTime;

    @ExcelProperty(value = "支付时间", index = 24)
    @ColumnWidth(20)
    @ApiModelProperty(value = "支付时间")
    private String payTime;

    @ExcelProperty(value = "订单完成时间", index = 25)
    @ColumnWidth(20)
    @ApiModelProperty(value = "订单完成时间")
    private String finishTime;

    @ExcelProperty(value = "信息1", index = 26)
    @ColumnWidth(20)
    @ApiModelProperty(value = "信息1")
    private String enrollTitleOne;

    @ExcelProperty(value = "信息1内容", index = 27)
    @ColumnWidth(20)
    @ApiModelProperty(value = "信息1内容")
    private String enrollInfoOne;

    @ExcelProperty(value = "信息2", index = 28)
    @ColumnWidth(20)
    @ApiModelProperty(value = "信息2")
    private String enrollTitleTwo;

    @ExcelProperty(value = "信息2内容", index = 29)
    @ColumnWidth(20)
    @ApiModelProperty(value = "信息2内容")
    private String enrollInfoTwo;

    @ExcelProperty(value = "信息3", index = 30)
    @ColumnWidth(20)
    @ApiModelProperty(value = "信息3")
    private String enrollTitleThree;

    @ExcelProperty(value = "信息3内容", index = 31)
    @ColumnWidth(20)
    @ApiModelProperty(value = "信息3内容")
    private String enrollInfoThree;

    @ExcelProperty(value = "信息4", index = 32)
    @ColumnWidth(20)
    @ApiModelProperty(value = "信息4")
    private String enrollTitleFour;

    @ExcelProperty(value = "信息4内容", index = 33)
    @ColumnWidth(20)
    @ApiModelProperty(value = "信息4内容")
    private String enrollInfoFour;

    @ExcelProperty(value = "信息5", index = 34)
    @ColumnWidth(20)
    @ApiModelProperty(value = "信息5")
    private String enrollTitleFive;

    @ExcelProperty(value = "信息5内容", index = 35)
    @ColumnWidth(20)
    @ApiModelProperty(value = "信息5内容")
    private String enrollInfoFive;

    @ExcelProperty(value = "信息6", index = 36)
    @ColumnWidth(20)
    @ApiModelProperty(value = "信息6")
    private String enrollTitleSix;

    @ExcelProperty(value = "信息6内容", index = 37)
    @ColumnWidth(20)
    @ApiModelProperty(value = "信息6内容")
    private String enrollInfoSix;

    @ExcelProperty(value = "信息7", index = 38)
    @ColumnWidth(20)
    @ApiModelProperty(value = "信息7")
    private String enrollTitleSeven;

    @ExcelProperty(value = "信息7内容", index = 39)
    @ColumnWidth(20)
    @ApiModelProperty(value = "信息7内容")
    private String enrollInfoSeven;

    @ExcelProperty(value = "信息8", index = 40)
    @ColumnWidth(20)
    @ApiModelProperty(value = "信息8")
    private String enrollTitleEight;

    @ExcelProperty(value = "信息8内容", index = 41)
    @ColumnWidth(20)
    @ApiModelProperty(value = "信息8内容")
    private String enrollInfoEight;

    @ExcelProperty(value = "信息9", index = 42)
    @ColumnWidth(20)
    @ApiModelProperty(value = "信息9")
    private String enrollTitleNine;

    @ExcelProperty(value = "信息9内容", index = 43)
    @ColumnWidth(20)
    @ApiModelProperty(value = "信息9内容")
    private String enrollInfoNine;

    @ExcelProperty(value = "信息10", index = 44)
    @ColumnWidth(20)
    @ApiModelProperty(value = "信息10")
    private String enrollTitleTen;

    @ExcelProperty(value = "信息10内容", index = 45)
    @ColumnWidth(20)
    @ApiModelProperty(value = "信息10内容")
    private String enrollInfoTen;

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public String getActiveTitle() {
        return activeTitle;
    }

    public void setActiveTitle(String activeTitle) {
        this.activeTitle = activeTitle;
    }

    public Integer getOrderNum() {
        return orderNum;
    }

    public void setOrderNum(Integer orderNum) {
        this.orderNum = orderNum;
    }

    public String getSubOrderNo() {
        return subOrderNo;
    }

    public void setSubOrderNo(String subOrderNo) {
        this.subOrderNo = subOrderNo;
    }

    public String getGoodsPrice() {
        return goodsPrice;
    }

    public void setGoodsPrice(BigDecimal getGoodsPrice) {
        if (getGoodsPrice != null) {
            this.goodsPrice = getGoodsPrice.setScale(2, BigDecimal.ROUND_HALF_UP).toString();
        }
    }

    public String getMerchantAmt() {
        return merchantAmt;
    }

    public void setMerchantAmt(BigDecimal getMerchantAmt) {
        if (getMerchantAmt != null) {
            this.merchantAmt = getMerchantAmt.setScale(2, BigDecimal.ROUND_HALF_UP).toString();
        }
    }

    public String getTotalSubsidyAmt() {
        return totalSubsidyAmt;
    }

    public void setTotalSubsidyAmt(BigDecimal getTotalSubsidyAmt) {
        if (getTotalSubsidyAmt != null) {
            this.totalSubsidyAmt = getTotalSubsidyAmt.setScale(2, BigDecimal.ROUND_HALF_UP).toString();
        }
    }

    public String getReturnAmt() {
        return returnAmt;
    }

    public void setReturnAmt(BigDecimal getReturnAmt) {
        if (getReturnAmt != null) {
            this.returnAmt = getReturnAmt.setScale(2, BigDecimal.ROUND_HALF_UP).toString();
        }
    }

    public String getSubOrderState() {
        return subOrderState;
    }

    public void setSubOrderState(Integer subOrderState) {
        SubOrderStateEnum subOrderStateEnum = SubOrderStateEnum.typeOf(subOrderState);
        if (subOrderStateEnum != null) {
            this.subOrderState = subOrderStateEnum.getName();
        }
    }

    public String getMerchantName() {
        return merchantName;
    }

    public void setMerchantName(String merchantName) {
        this.merchantName = merchantName;
    }

    public String getVerifyTime() {
        return verifyTime;
    }

    public void setVerifyTime(LocalDateTime getVerifyTime) {
        if (getVerifyTime != null) {
            this.verifyTime = LocalDateUtil.toLocalDateTimeToString(getVerifyTime, "yyyy.MM.dd HH:mm:ss");
        }
    }

    public String getOrderNickName() {
        return orderNickName;
    }

    public void setOrderNickName(String orderNickName) {
        this.orderNickName = orderNickName;
    }

    public String getOrderMobile() {
        return orderMobile;
    }

    public void setOrderMobile(String orderMobile) {
        this.orderMobile = orderMobile;
    }

    public String getOrderPrice() {
        return orderPrice;
    }

    public void setOrderPrice(BigDecimal getOrderPrice) {
        if (getOrderPrice != null) {
            this.orderPrice = getOrderPrice.setScale(2, BigDecimal.ROUND_HALF_UP).toString();
        }
    }

    public String getDiscountAmt() {
        return discountAmt;
    }

    public void setDiscountAmt(BigDecimal getDiscountAmt) {
        if (getDiscountAmt != null) {
            this.discountAmt = getDiscountAmt.setScale(2, BigDecimal.ROUND_HALF_UP).toString();
        }
    }

    public String getRedPacketAmt() {
        return redPacketAmt;
    }

    public void setRedPacketAmt(BigDecimal getRedPacketAmt) {
        if (getRedPacketAmt != null) {
            this.redPacketAmt = getRedPacketAmt.setScale(2, BigDecimal.ROUND_HALF_UP).toString();
        }
    }

    public String getPayPrice() {
        return payPrice;
    }

    public void setPayPrice(BigDecimal getPayPrice) {
        if (getPayPrice != null) {
            this.payPrice = getPayPrice.setScale(2, BigDecimal.ROUND_HALF_UP).toString();
        }
    }

    public String getAgentNickName() {
        return agentNickName;
    }

    public void setAgentNickName(String agentNickName) {
        this.agentNickName = agentNickName;
    }

    public String getAgentMobile() {
        return agentMobile;
    }

    public void setAgentMobile(String agentMobile) {
        this.agentMobile = agentMobile;
    }

    public String getPromotionEquity() {
        return promotionEquity;
    }

    public void setPromotionEquity(String promotionEquity) {
        this.promotionEquity = promotionEquity;
    }

    public String getTotalOrderSubsidy() {
        return totalOrderSubsidy;
    }

    public void setTotalOrderSubsidy(BigDecimal getTotalOrderSubsidy) {
        if (getTotalOrderSubsidy != null) {
            this.totalOrderSubsidy = getTotalOrderSubsidy.setScale(2, BigDecimal.ROUND_HALF_UP).toString();
        }
    }

    public String getTotalReturnAmt() {
        return totalReturnAmt;
    }

    public void setTotalReturnAmt(BigDecimal getTotalReturnAmt) {
        if (getTotalReturnAmt != null) {
            this.totalReturnAmt = getTotalReturnAmt.setScale(2, BigDecimal.ROUND_HALF_UP).toString();
        }
    }

    public String getOrderState() {
        return orderState;
    }

    public void setOrderState(Integer orderState) {
        OrderStateEnum orderStateEnum = OrderStateEnum.typeOf(orderState);
        if (orderStateEnum != null) {
            this.orderState = orderStateEnum.getName();
        }
    }

    public String getOrderTime() {
        return orderTime;
    }

    public void setOrderTime(LocalDateTime getOrderTime) {
        if (getOrderTime != null) {
            this.orderTime = LocalDateUtil.toLocalDateTimeToString(getOrderTime, "yyyy.MM.dd HH:mm:ss");
        }
    }

    public String getPayTime() {
        return payTime;
    }

    public void setPayTime(LocalDateTime getPayTime) {
        if (getPayTime != null) {
            this.payTime = LocalDateUtil.toLocalDateTimeToString(getPayTime, "yyyy.MM.dd HH:mm:ss");
        }
    }

    public String getFinishTime() {
        return finishTime;
    }

    public void setFinishTime(LocalDateTime getFinishTime) {
        if (getFinishTime != null) {
            this.finishTime = LocalDateUtil.toLocalDateTimeToString(getFinishTime, "yyyy.MM.dd HH:mm:ss");
        }
    }

    public String getEnrollTitleOne() {
        return enrollTitleOne;
    }

    public void setEnrollTitleOne(String enrollTitleOne) {
        this.enrollTitleOne = enrollTitleOne;
    }

    public String getEnrollInfoOne() {
        return enrollInfoOne;
    }

    public void setEnrollInfoOne(String enrollInfoOne) {
        this.enrollInfoOne = enrollInfoOne;
    }

    public String getEnrollTitleTwo() {
        return enrollTitleTwo;
    }

    public void setEnrollTitleTwo(String enrollTitleTwo) {
        this.enrollTitleTwo = enrollTitleTwo;
    }

    public String getEnrollInfoTwo() {
        return enrollInfoTwo;
    }

    public void setEnrollInfoTwo(String enrollInfoTwo) {
        this.enrollInfoTwo = enrollInfoTwo;
    }

    public String getEnrollTitleThree() {
        return enrollTitleThree;
    }

    public void setEnrollTitleThree(String enrollTitleThree) {
        this.enrollTitleThree = enrollTitleThree;
    }

    public String getEnrollInfoThree() {
        return enrollInfoThree;
    }

    public void setEnrollInfoThree(String enrollInfoThree) {
        this.enrollInfoThree = enrollInfoThree;
    }

    public String getEnrollTitleFour() {
        return enrollTitleFour;
    }

    public void setEnrollTitleFour(String enrollTitleFour) {
        this.enrollTitleFour = enrollTitleFour;
    }

    public String getEnrollInfoFour() {
        return enrollInfoFour;
    }

    public void setEnrollInfoFour(String enrollInfoFour) {
        this.enrollInfoFour = enrollInfoFour;
    }

    public String getEnrollTitleFive() {
        return enrollTitleFive;
    }

    public void setEnrollTitleFive(String enrollTitleFive) {
        this.enrollTitleFive = enrollTitleFive;
    }

    public String getEnrollInfoFive() {
        return enrollInfoFive;
    }

    public void setEnrollInfoFive(String enrollInfoFive) {
        this.enrollInfoFive = enrollInfoFive;
    }

    public String getEnrollTitleSix() {
        return enrollTitleSix;
    }

    public void setEnrollTitleSix(String enrollTitleSix) {
        this.enrollTitleSix = enrollTitleSix;
    }

    public String getEnrollInfoSix() {
        return enrollInfoSix;
    }

    public void setEnrollInfoSix(String enrollInfoSix) {
        this.enrollInfoSix = enrollInfoSix;
    }

    public String getEnrollTitleSeven() {
        return enrollTitleSeven;
    }

    public void setEnrollTitleSeven(String enrollTitleSeven) {
        this.enrollTitleSeven = enrollTitleSeven;
    }

    public String getEnrollInfoSeven() {
        return enrollInfoSeven;
    }

    public void setEnrollInfoSeven(String enrollInfoSeven) {
        this.enrollInfoSeven = enrollInfoSeven;
    }

    public String getEnrollTitleEight() {
        return enrollTitleEight;
    }

    public void setEnrollTitleEight(String enrollTitleEight) {
        this.enrollTitleEight = enrollTitleEight;
    }

    public String getEnrollInfoEight() {
        return enrollInfoEight;
    }

    public void setEnrollInfoEight(String enrollInfoEight) {
        this.enrollInfoEight = enrollInfoEight;
    }

    public String getEnrollTitleNine() {
        return enrollTitleNine;
    }

    public void setEnrollTitleNine(String enrollTitleNine) {
        this.enrollTitleNine = enrollTitleNine;
    }

    public String getEnrollInfoNine() {
        return enrollInfoNine;
    }

    public void setEnrollInfoNine(String enrollInfoNine) {
        this.enrollInfoNine = enrollInfoNine;
    }

    public String getEnrollTitleTen() {
        return enrollTitleTen;
    }

    public void setEnrollTitleTen(String enrollTitleTen) {
        this.enrollTitleTen = enrollTitleTen;
    }

    public String getEnrollInfoTen() {
        return enrollInfoTen;
    }

    public void setEnrollInfoTen(String enrollInfoTen) {
        this.enrollInfoTen = enrollInfoTen;
    }
}
